Electromagnetic waves and signals (hereinafter “signals”) are utilized for many different purposes. For example, electromagnetic signals may be processed in order to convey information, such as by attenuating and/or amplifying electromagnetic wave characteristics, for instance, as is seen when modulating the amplitude, frequency or phase of an electrical current or radio frequency (RF) wave to transmit data. As another example, power may be conveyed along a wave in a controlled fashion by attenuating and/or amplifying electromagnetic signals, such as is seen when modulating voltage or current in a circuit. Moreover, the uses may be combined, such as when information may be conveyed through a signal by processing power characteristics.
Electromagnetic signal processing may be accomplished through digital or analog techniques. Digital and analog attenuation and/or amplification also may be combined—that is, the same wave form may be subject to various types of digital and/or analog attenuation and/or amplification within a system in order to accomplish desired tasks. Other types of processing also may be used to modify electromagnetic signals, including pre-distortion, various types of modulation, etc.
For purposes of signal processing, and particularly for digital signal processing, electromagnetic signals may be represented in various ways. For example, a signal may be represented as a sequence of vectors indicative of the amplitude and phase of the signal. The vectors may be represented using various coordinate systems, including rectangular coordinates and polar coordinates.
Using rectangular coordinates, a particular vector V may be represented as the vector coordinate pair (x,y), where “x” represents the vector component in the x direction (i.e., along the x-axis), and “y” represents the vector component in they direction (i.e, along the y-axis.). In a related form of representation, rectangular coordinates are sometimes represented as “IQ” data, wherein a particular vector V may be represented as the complex number I+jQ. In this case, “I” represents the vector component in the x direction, and “Q” represents the vector component in they direction. For simplicity, IQ data may simply be denoted as (I,Q), which is the same as the (x,y) notation discussed above.
Polar coordinates also are useful in representing electromagnetic signals. In the case of polar coordinates, a particular vector V may be represented as the vector coordinate pair (ρ,Θ), where “ρ” represents the magnitude of the vector and “Θ” represents the angle of the vector from the x-axis.
Sometimes it is useful to convert the vector representation of a signal from rectangular coordinates to polar coordinates. One way of accomplishing this conversion is to use a CORDIC algorithm. (The “CORDIC” acronym is taken from “COordinate Rotation DIgital Computer”). CORDIC algorithms convert a 2-dimensional vector (x,y) from rectangular coordinates into polar coordinates (ρ,Θ). The algorithms accomplish this by performing a successive approximation operation that rotates the vector asymptotically toward the x-axis. After a certain number of iterations, the polar angle coordinate, Θ, may be determined based on the angle by which the vector has been rotated, and polar magnitude coordinate, ρ, may be determined based on the point at which the rotated vector ends on (or near) the x-axis.
The number of iterations required of a CORDIC algorithm depends on the bit width of the input vector and the desired accuracy of the final calculation. A disadvantage of known CORDIC algorithms is that, as the number of iterations increases, so does the amount of time required to complete each vector conversion. This results in a propagation delay between receipt of the rectangular input vector and output of the converted polar vector.
Another disadvantage of known CORDIC algorithms is that the algorithm must complete the conversion of one input vector (including all necessary iterations) before it may begin the conversion of the next input vector in the sequence. If the propagation delay is longer than the sampling period of the input signal, then the overall propagation delay between the input signal and the output signal will grow with each additional input vector conversion. In certain practical applications, such as high-speed communication systems, this increasing propagation delay is undesirable.
Accordingly, there is a need for systems and methods that provide efficient conversion of signal vectors from rectangular coordinates to polar coordinates. There also is a need for systems and methods that provide high-speed rectangular to polar conversion without excessive propagation delays.